home *** CD-ROM | disk | FTP | other *** search
-
-
-
- RESOLVER C Library Procedures RESOLVER
-
-
-
- NNAAMMEE
- res_mkquery, res_send, res_init, dn_comp, dn_expand -
- resolver routines
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
- ##iinncclluuddee <<nneettiinneett//iinn..hh>>
- ##iinncclluuddee <<aarrppaa//nnaammeesseerr..hh>>
- ##iinncclluuddee <<rreessoollvv..hh>>
-
- rreess__mmkkqquueerryy((oopp,, ddnnaammee,, ccllaassss,, ttyyppee,, ddaattaa,, ddaattaalleenn,, nneewwrrrr,,
- bbuuff,, bbuufflleenn))
- iinntt oopp;;
- cchhaarr **ddnnaammee;;
- iinntt ccllaassss,, ttyyppee;;
- cchhaarr **ddaattaa;;
- iinntt ddaattaalleenn;;
- ssttrruucctt rrrreecc **nneewwrrrr;;
- cchhaarr **bbuuff;;
- iinntt bbuufflleenn;;
-
- rreess__sseenndd((mmssgg,, mmssgglleenn,, aannsswweerr,, aannsslleenn))
- cchhaarr **mmssgg;;
- iinntt mmssgglleenn;;
- cchhaarr **aannsswweerr;;
- iinntt aannsslleenn;;
-
- rreess__iinniitt(())
-
- ddnn__ccoommpp((eexxpp__ddnn,, ccoommpp__ddnn,, lleennggtthh,, ddnnppttrrss,, llaassttddnnppttrr))
- cchhaarr **eexxpp__ddnn,, **ccoommpp__ddnn;;
- iinntt lleennggtthh;;
- cchhaarr ****ddnnppttrrss,, ****llaassttddnnppttrr;;
-
- ddnn__eexxppaanndd((mmssgg,, eeoommoorriigg,, ccoommpp__ddnn,, eexxpp__ddnn,, lleennggtthh))
- cchhaarr **mmssgg,, **eeoommoorriigg,, **ccoommpp__ddnn,, eexxpp__ddnn;;
- iinntt lleennggtthh;;
-
- DDEESSCCRRIIPPTTIIOONN
- These routines are used for making, sending and interpreting
- packets for use with Internet domain name servers. Global
- information that is used by the resolver routines is kept in
- the variable __r_e_s. Most of the values have reasonable
- defaults and can be ignored. Options stored in __r_e_s._o_p_t_i_o_n_s
- are defined in _r_e_s_o_l_v._h and are as follows. Options are
- stored a simple bit mask containing the bitwise ``or'' of
- the options enabled.
-
- RES_INIT
- True if the initial name server address and default
- domain name are initialized (i.e., _r_e_s__i_n_i_t has been
- called).
-
-
-
- Sprite v1.0 November 21, 1987 1
-
-
-
-
-
-
- RESOLVER C Library Procedures RESOLVER
-
-
-
- RES_DEBUG
- Print debugging messages.
-
- RES_AAONLY
- Accept authoritative answers only. With this option,
- _r_e_s__s_e_n_d should continue until it finds an authorita-
- tive answer or finds an error. Currently this is not
- implemented.
-
- RES_USEVC
- Use TCP connections for queries instead of UDP
- datagrams.
-
- RES_STAYOPEN
- Used with RES_USEVC to keep the TCP connection open
- between queries. This is useful only in programs that
- regularly do many queries. UDP should be the normal
- mode used.
-
- RES_IGNTC
- Unused currently (ignore truncation errors, i.e., don't
- retry with TCP).
-
- RES_RECURSE
- Set the recursion-desired bit in queries. This is the
- default. ( _r_e_s__s_e_n_d does not do iterative queries and
- expects the name server to handle recursion.)
-
- RES_DEFNAMES
- If set, _r_e_s__m_k_q_u_e_r_y will append the default domain name
- to single-component names (those that do not contain a
- dot). This is the default.
-
- RES_DNSRCH
- If this option is set, the standard host lookup routine
- _g_e_t_h_o_s_t_b_y_n_a_m_e(3) will search for host names in the
- current domain and in parent domains; see _h_o_s_t_n_a_m_e(7).
-
- _R_e_s__i_n_i_t
-
- reads the initialization file to get the default domain name
- and the Internet address of the initial hosts running the
- name server. If this line does not exist, the host running
- the resolver is tried. _R_e_s__m_k_q_u_e_r_y makes a standard query
- message and places it in _b_u_f. _R_e_s__m_k_q_u_e_r_y will return the
- size of the query or -1 if the query is larger than _b_u_f_l_e_n.
- _O_p is usually QUERY but can be any of the query types
- defined in _n_a_m_e_s_e_r._h. _D_n_a_m_e is the domain name. If _d_n_a_m_e
- consists of a single label and the RES_DEFNAMES flag is
- enabled (the default), the current domain name will be
- appended to _d_n_a_m_e. The current domain name is defined by
- the hostname or is specified in a system file; it can be
-
-
-
- Sprite v1.0 November 21, 1987 2
-
-
-
-
-
-
- RESOLVER C Library Procedures RESOLVER
-
-
-
- overridden by the environment variable LOCALDOMAIN. _N_e_w_r_r
- is currently unused but is intended for making update mes-
- sages.
-
- _R_e_s__s_e_n_d sends a query to name servers and returns an
- answer. It will call _r_e_s__i_n_i_t if RES_INIT is not set, send
- the query to the local name server, and handle timeouts and
- retries. The length of the message is returned, or -1 if
- there were errors.
-
- _D_n__e_x_p_a_n_d expands the compressed domain name _c_o_m_p__d_n to a
- full domain name. Expanded names are converted to upper
- case. _M_s_g is a pointer to the beginning of the message,
- _e_x_p__d_n is a pointer to a buffer of size _l_e_n_g_t_h for the
- result. The size of compressed name is returned or -1 if
- there was an error.
-
- _D_n__c_o_m_p compresses the domain name _e_x_p__d_n and stores it in
- _c_o_m_p__d_n. The size of the compressed name is returned or -1
- if there were errors. _l_e_n_g_t_h _i_s _t_h_e _s_i_z_e _o_f _t_h_e _c_o_m_p__d_n.
- _D_n_p_t_r_s is a list of pointers to previously compressed names
- in the current message. The first pointer points to to the
- beginning of the message and the list ends with NULL.
- _l_a_s_t_d_n_p_t_r is a pointer to the end of the array pointed to
- _d_n_p_t_r_s. A side effect is to update the list of pointers for
- labels inserted into the message by _d_n__c_o_m_p as the name is
- compressed. If _d_n_p_t_r is NULL, names are not compressed. If
- _l_a_s_t_d_n_p_t_r is NULL, the list of labels is not updated.
-
- FFIILLEESS
- /etc/resolv.conf see resolver(5)
-
- SSEEEE AALLSSOO
- gethostbyname(3), named(8), resolver(5), hostname(7),
- RFC882, RFC883, RFC973, RFC974,
- SMM:11 Name Server Operations Guide for BIND
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 November 21, 1987 3
-
-
-
-